<?php

try {
    $includeModels = array('BaseModel.class','Operacao.class');
    include('../../model/BaseModel.class.php');
    include('../../model/Operacao.class.php');
     
    $auth = array(
    array('action'=> 'Salvar', 'operacao' => Operacao::CONTRATO_CADASTRAR_ADITIVOS)
    );

    require_once '../../controller/controller.inc.php';

    FluxoContrato::isVisible(array(Operacao::CONTRATO_CADASTRAR_ADITIVOS));

    # Classes para indicar a aba ativa
    $classeContratos = '';
    $classeVagas = '';
    $classeLotacoes = '';
    $classeSalarios = '';
    $classeVagasLotacoes = '';
    $classeAditivos = 'class="ativa"';
    $classeArquivos = '';

    $motivoAditivo = new MotivoAditivo();
    $result = $motivoAditivo->listar(array('orderBy' => 'motivoaditivoid'));
    if (pg_num_rows($result) > 0) {
        $listaMotivosAditivo = pg_fetch_all($result);
    }
    else {
        $listaMotivosAditivo = NULL;
    }

    /*
     * Variável, nesse controller, usada apenas para os helpers
     * aba e situação
     *
     * Normalmente, $id
     */
    $contratoid = $_GET['contratoid'];

    $id = (isset($_POST['id'])) ? $_POST['id'] : $_GET['contratoid'];
     
    # Autorização
    if (!$usuario->isContratoPermitido($id)) {
        $id = -1;
        $contrato =  new Contrato();
        throw new Exception('Voce não tem autorizacao para acessar esta pagina.');
    }
     
    $contrato = new Contrato($id);
     
    if (FluxoContrato::isEditable('aditivoscontrato', $contrato)) {
        $readOnly = '';
    }
    else {
        $readOnly = 'disabled="disabled"';
    }
     
    if (!$id) {
        $contrato->datainicio = date('d/m/Y');
        $contrato->datafim = date('d/m/Y');
    }

    $submitUrl = basename(__FILE__) . '?contratoid=' . $_GET['contratoid'];
     
    require('../../controller/contratos/helper_situacao.php');
     
    if (isset($_POST["btnAcao"])) {
         
        switch ($_POST["btnAcao"]) {
             
            case "Novo Aditivo":

                if (isset($_POST['chkMotivosAditivo'])) {
                    $motivosAditivo = $_POST['chkMotivosAditivo'];
                }
                else {
                    throw new Exception('Pelo menos um motivo de aditivo
                        deve ser escolhido.');
                }
                unset( $_POST['chkMotivosAditivo'] );
                 
                $aditivo = new Contrato();
                TUtils::preencherObjeto($aditivo, $_POST);

                if (!$aditivo->verificarUnicidadeNumeroAditivo()) {
                    throw new Exception('Número de aditivo repetido.
                        Você deve informar outro número.');
                }

                $id = FluxoContrato::inserirAditivo($contrato, $aditivo, $motivosAditivo);
                $message = 'insercao';

                header('Location: ../contratos/cadastrar.php?message=' .
                    $message . '&id=' . $id);

                break;
        }
    }
}
catch (exception $e) {
    $erro = $e->getMessage();
}

?>